#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<limits.h>
//char*my_strncpy(char*str1,const char*str2,size_t sz)
//{
//	assert(str1&&str2);
//	while (sz)
//	{
//		*(str1+sz-1)= *(str2+sz-1);
//		sz--;
//	}
//
//}
//int main()
//{
//	char arr1[10] = "abcdef";
//	char arr2[10] = "efhij";
//	//strncpy(arr1,arr2,3);
//	my_strncpy(arr1, arr2, 3);
//	printf("%s",arr1);
//}
//#include<stdio.h>
//#include<string.h>
//#include<assert.h>
//char* my_strncat(char* str1, const char* str2, size_t sz)
//{
//	assert(str1 && str2);
//	char* ret = str1;
//	while (*str1)
//	{
//		str1++;
//	}
//	int i = 0;
//	for(i=0;i<sz;i++)
//	{
//		*(str1+i) = *(str2+i);
//	}
//	*(str1 + i) = '\0';
//	return ret;
//}
//int main()
//{
//	char arr1[20] = "abcdef";
//	char arr2[20] = "efhij";
//	//strncat(arr1,arr2,3);
//	my_strncat(arr1, arr2, 3);
//	printf("%s\n", arr1);
//}

#include <ctype.h>
#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_atoi(const char* str)
{
	int a = 0;
	assert(str);
	while (1)
	{
		if (*str == '\0')
		{
			return 0;
		}
		while (1)
		{
			if (*str == ' ')
			{
				str++;
			}
			else
				break;
		}
		if (*str == '+')
		{
			str++;
			a++;
		}
		if (*str == '-')
		{
			str--;
			a--;
		}
		while (*str)
		{
			if (isdigit(*str))
			{
				a *= 10;
				a += *str - '0';
				str++;
			}
			else
				break;
		}
		return a;
	}
}

int main()
{
	char arr1[10] = "65deff";
	char arr2[10] = "defh123ij";
	printf("%d\n", my_atoi(arr1));
	printf("%d\n", atoi(arr1));
}